1. Field of the Invention
The present invention relates to providing electronic mail services, and more particularly, to providing electronic mail services during network unavailability.
2. Description of the Related Art
Electronic mail (email) is a popular way to communicate with others. Electronic mail systems operate to send messages over a network. The network can include internal networks and external (e.g., public) networks. An example of an internal network is a corporate network, and an example of an external network is the Internet. Typically, the electronic mail systems are corporate wide systems that reside on an internal network but also permit coupling to an external network so that messages can be exchanged with other electronic mail systems.
Recently, Internet-based electronic mail systems have been developed and implemented to provide electronic mail services over the Internet. In such systems, there is no internal network because the electronic mail system resides on the Internet. The electronic mail system has a mail server that interacts with users' network browsers so that users are able to request electronic mail services which are performed by the mail server. Typically, the mail server is a Hyper Text Transfer Protocol (HTTP) server.
These Internet-based electronic mail systems have been implemented over wired networks as well as wireless networks. The availability of the network determines whether a client application (e.g., network browser) is in communication with the mail server. The client application operates on a local machine, whereas the mail server operates on a remote machine. In the case of wired networks, the local machine is, for example, a desktop computer. In the case of wireless networks, the local machine is a mobile device. For example, the mobile device can be a mobile telephone, a personal digital assistant (PDA) or a portable computer that has wireless access to the mail server.
One problem with the conventional electronic mail systems is that the operation of client applications are very much dependent on availability of their network. In other words, when the network is unavailable, the client applications can become "hung", namely stopping further processing until a response from a remote server via the network is received. The network can be a wired network or a wireless network. Unavailability of a wired network can be due to high congestion or server failure. Unavailability of a wireless network can result from a user of a mobile device (supporting the client application) exceeding the geographic range of coverage. Unavailability also effectively results from a wireless network having high latencies, sporadic connectivity, high congestion or server failure. Because of the dependency of the operation of client applications on the availability of networks, client applications often have to wait for resources from a mail server. These wait times are unacceptably long when the network is unavailable to the client applications.
Computers or mobile devices are often provided with cache memories that temporarily store previously requested and obtained resources from remote servers. A cache memory is helpful in reducing the dependency of the computers or mobile devices on network availability. However, the cache memory is only helpful when the newly requested resource happens to reside in the cache memory. Hence, if the newly requested resource was not previously requested, then the newly requested resource would not be stored in the cache memory. Also, even if the newly requested resource were at one point in time stored in the cache memory, a reclamation or clean-up algorithm could have removed it from the cache memory to provide space for newer requested resources. Still further, the cache memory has to be relatively large to store all the resources likely to be requested. However, mobile devices (particularly hand-held mobile devices) need to keep cache memories relatively small due to power, cost and space limitations.
In the case of Internet-based electronic mail systems, a network browser operates on the computer or mobile device to enable access and manipulation their electronic mail residing on a mail server over the Internet. Since the network browsers often request electronic mail resources from remote mail servers over the network, the network browsers are particularly sensitive to network unavailability (e.g., due to out of coverage, high latencies, or sporadic connectivity). Consequently, even with a conventional cache memory, it is common for network unavailability to induce significant delays for the users of network browsers on computers or mobile devices.
Thus, there is a need for techniques to reduce delays faced by users seeking to perform electronic mail services with a mail server across a network.